Soru & Cevap

Timer Kullanınca Not on the main thread Sorunu

25.12.2016 - 07:58

Logcat:

12-25 19:53:07.071 4879-5020/com.example.trafikuygulama E/AndroidRuntime: FATAL EXCEPTION: Timer-0
                                                                          Process: com.example.trafikuygulama, PID: 4879
                                                                          java.lang.IllegalStateException: Not on the main thread
                                                                              at maps.w.d.a(Unknown Source)
                                                                              at maps.y.F.a(Unknown Source)
                                                                              at maps.ad.t.a(Unknown Source)
                                                                              at xj.onTransact(:com.google.android.gms.DynamiteModulesB:167)
                                                                              at android.os.Binder.transact(Binder.java:380)
                                                                              at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.addMarker(Unknown Source)
                                                                              at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
                                                                              at com.example.trafikuygulama.KullaniciActivity.KonumOku(KullaniciActivity.java:142)
                                                                              at com.example.trafikuygulama.KullaniciActivity$1.run(KullaniciActivity.java:71)
                                                                              at java.util.Timer$TimerImpl.run(Timer.java:284)

 

 

Buradaki hata nedir ? Ve nasıl çözebilirim ?

6 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user gmyucalfarukeren
gmyucalfarukeren
19.02.2023 - 06:47

Hata mesajına göre, Not on the main thread hatası, ana iş parçacığında (main thread) olmayan bir işlem yapıldığı anlamına gelir. Bu, genellikle arka plan işlemleri yapmak için ayrılan bir iş parçacığı (thread) kullanılmadığı durumlarda meydana gelir

Sorun, com.example.trafikuygulama.KullaniciActivity.KonumOku(KullaniciActivity.java:142) kodunda ortaya çıkmıştır. Kodunuz bu metot içinde Google Haritalar API'si kullanıyor gibi görünüyor ve belki de bu işlemler bir arka plan iş parçacığında yürütülmüyor

Bu hatayı çözmek için, arka planda yürütülecek olan işlemleri farklı bir iş parçacığında yürütmelisiniz. Bunun için, Android platformu tarafından sağlanan AsyncTask veya HandlerThread sınıflarını kullanabilirsiniz

Aşağıda örnek bir AsyncTask sınıfı verilmiştir

 

private class MyTask extends AsyncTask<Void, Void, Void> {
 
    @Override
    protected Void doInBackground(Void... params) {
        // Arka planda yapılacak işlemler burada yapılabilir.
        return null;
    }
 
    @Override
    protected void onPostExecute(Void result) {
        // İşlem tamamlandıktan sonra yapılacak işlemler burada yapılabilir.
    }
}